package com.shop.cereshop.app.page.productDetail;

import com.shop.cereshop.app.annotation.KeepLongAsNumber;
import com.shop.cereshop.commons.domain.product.SkuProject;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.math.BigDecimal;
import java.util.List;
import java.util.Set;

/**
 * @description: 组合SKU信息，表示一个完整的商品规格组合
 * @author zdd
 * @date 2025/11/7 15:06
 * @version 1.0
 */
@Data
@ApiModel(value = "SkuDTO", description = "商品SKU信息")
public class SkuDTO {

    @ApiModelProperty(value = "SKU ID，唯一标识一个商品规格组合")
    @KeepLongAsNumber
    private Long skuId;

    @ApiModelProperty(value = "SKU规格组合")
    private String combinationKey;

    @ApiModelProperty(value = "该SKU的销售价格，单位：元")
    private BigDecimal price;

    @ApiModelProperty(value = "SKU图片列表（通常只有一张主图）")
    private List<String> images;

    @ApiModelProperty(value = "该SKU的库存数量")
    @KeepLongAsNumber
    private Long stock;

    @ApiModelProperty(value = "该SKU的附加项信息，如优惠、赠品等")
    private List<SkuProject> projects;
}
